package com.weixue.dao;

import com.weixue.entity.Carousel;
import com.weixue.utils.PageQueryUtil;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Day23
 *      轮播图Mapper接口
 */
public interface CarouselMapper {
    /**
     * 1.查询分页数据
     */
    List<Carousel> findCarouselList(PageQueryUtil pageUtil);

    /**
     * 2.查询总数
     */
    int getTotalCarousels(PageQueryUtil pageUtil);

    /**
     * 3.根据主键查询记录
     */
    Carousel selectByPrimaryKey(Integer carouselId);

    /**
     * 4.查询固定数量的记录
     */
    List<Carousel> findCarouselsByNum(@Param("number") int number);

    /**
     * 5.删除一条记录
     */
    int deleteByPrimaryKey(Integer carouselId);

    /**
     * 6.保存一条新记录
     */
    int insert(Carousel record);

    /**
     * 7.保存一条新记录
     */
    int insertSelective(Carousel record);

    /**
     * 8.根据主键选择修改记录
     */
    int updateByPrimaryKeySelective(Carousel record);

    /**
     * 9.根据主键修改记录
     */
    int updateByPrimaryKey(Carousel record);

    /**
     * 10.批量删除
     *      （注意:这类是模拟删除轮播图，实际没有进行数据库删除，只是把标识字段设置为1=删除 0=未删除
     *            其中now()是获取数据库获取时间，如果用foreach进行sql遍历要看sql语句参数有没有@Param注解
     *            如果有这个参数使用了@Param注解，在foreach标签中，collection=“@Param注解参数”
     *            如果没有，在foreach标签中，collection=“list”或collection=“array”来判断是进行什么类型的遍历）
     */
    int deleteBatch(Integer[] ids);
}